package com.mmall.pay.service.impl;

import com.mmall.pay.bean.MmallPayConfig;
import com.mmall.pay.mapper.PayConfigMapper;
import com.mmall.pay.param.MmallPayConfigParam;
import com.mmall.pay.pojo.entity.PayConfigEntity;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * @author gg
 * @version PayFlowService.java, v 0.1 2019-05-29 16:46 gg
 */
@Slf4j
@Service("payFlowService")
public class PayConfigService {

    @Resource
    private PayConfigMapper payConfigMapper;

    public MmallPayConfig selectByProductId(MmallPayConfigParam namekPayConfigParam) {
        MmallPayConfig mmallPayConfig = new MmallPayConfig();
        try {
            PayConfigEntity payConfigEntity = payConfigMapper.getConfig(namekPayConfigParam);
            mmallPayConfig.setAppId(payConfigEntity.getAppId().trim());
            mmallPayConfig.setPayMchId(payConfigEntity.getPayMchId().trim());
            mmallPayConfig.setPaySign(payConfigEntity.getPaySign().trim());
            mmallPayConfig.setDev(payConfigEntity.getDev());
            mmallPayConfig.setPrivateKey(payConfigEntity.getPrivateKey());
            mmallPayConfig.setPublicKey(payConfigEntity.getPublicKey());
            mmallPayConfig.setSignType(payConfigEntity.getSignType());
            if (StringUtils.isNoneBlank(payConfigEntity.getKeyPath())) {
                mmallPayConfig.setKeyPath(payConfigEntity.getKeyPath().trim());
            }
            return mmallPayConfig;
        } catch (Exception e) {
            log.error("查询配置参数失败: {}", e);
            throw new RuntimeException("请先为该客户配置支付参数。");
        }
    }
}